# coding: utf-8

"""
    SnapTrade

    Connect brokerage accounts to your app for live positions and trading

    The version of the OpenAPI document: 1.0.0
    Contact: api@snaptrade.com
    Created by: https://snaptrade.com/
"""

from datetime import date, datetime  # noqa: F401
import decimal  # noqa: F401
import functools  # noqa: F401
import io  # noqa: F401
import re  # noqa: F401
import typing  # noqa: F401
import typing_extensions  # noqa: F401
import uuid  # noqa: F401

import frozendict  # noqa: F401

from snaptrade_client import schemas  # noqa: F401


class StrategyOrderPlaceOrdersItem(
    schemas.DictSchema
):
    """
    This class is auto generated by Konfig (https://konfigthis.com)
    """


    class MetaOapg:
        
        class properties:
            id = schemas.Int32Schema
            symbol = schemas.StrSchema
            symbolId = schemas.Int32Schema
            totalQuantity = schemas.Int32Schema
            openQuantity = schemas.Int32Schema
            filledQuantity = schemas.Int32Schema
            canceledQuantity = schemas.Int32Schema
            side = schemas.StrSchema
            orderType = schemas.StrSchema
            limitPrice = schemas.StrSchema
            stopPrice = schemas.StrSchema
            isAllOrNone = schemas.BoolSchema
            isAnonymous = schemas.BoolSchema
            icebergQuantity = schemas.StrSchema
            minQuantity = schemas.StrSchema
            avgExecPrice = schemas.Int32Schema
            lastExecPrice = schemas.StrSchema
            source = schemas.StrSchema
            timeInForce = schemas.StrSchema
            gtdDate = schemas.StrSchema
            state = schemas.StrSchema
            rejectionReason = schemas.StrSchema
            chainId = schemas.Int32Schema
            creationTime = schemas.StrSchema
            updateTime = schemas.StrSchema
            notes = schemas.StrSchema
            primaryRoute = schemas.StrSchema
            secondaryRoute = schemas.StrSchema
            orderRoute = schemas.StrSchema
            venueHoldingOrder = schemas.StrSchema
            comissionCharged = schemas.Int32Schema
            exchangeOrderId = schemas.StrSchema
            isSignificantShareHolder = schemas.BoolSchema
            isInsider = schemas.BoolSchema
            isLimitOffsetInDollar = schemas.BoolSchema
            userId = schemas.Int32Schema
            placementCommission = schemas.StrSchema
        
            @staticmethod
            def legs() -> typing.Type['StrategyOrderPlaceOrdersItemLegs']:
                return StrategyOrderPlaceOrdersItemLegs
            strategyType = schemas.StrSchema
            triggerStopPrice = schemas.StrSchema
            orderGroupId = schemas.Int32Schema
            orderClass = schemas.StrSchema
            isCrossZero = schemas.BoolSchema
            __annotations__ = {
                "id": id,
                "symbol": symbol,
                "symbolId": symbolId,
                "totalQuantity": totalQuantity,
                "openQuantity": openQuantity,
                "filledQuantity": filledQuantity,
                "canceledQuantity": canceledQuantity,
                "side": side,
                "orderType": orderType,
                "limitPrice": limitPrice,
                "stopPrice": stopPrice,
                "isAllOrNone": isAllOrNone,
                "isAnonymous": isAnonymous,
                "icebergQuantity": icebergQuantity,
                "minQuantity": minQuantity,
                "avgExecPrice": avgExecPrice,
                "lastExecPrice": lastExecPrice,
                "source": source,
                "timeInForce": timeInForce,
                "gtdDate": gtdDate,
                "state": state,
                "rejectionReason": rejectionReason,
                "chainId": chainId,
                "creationTime": creationTime,
                "updateTime": updateTime,
                "notes": notes,
                "primaryRoute": primaryRoute,
                "secondaryRoute": secondaryRoute,
                "orderRoute": orderRoute,
                "venueHoldingOrder": venueHoldingOrder,
                "comissionCharged": comissionCharged,
                "exchangeOrderId": exchangeOrderId,
                "isSignificantShareHolder": isSignificantShareHolder,
                "isInsider": isInsider,
                "isLimitOffsetInDollar": isLimitOffsetInDollar,
                "userId": userId,
                "placementCommission": placementCommission,
                "legs": legs,
                "strategyType": strategyType,
                "triggerStopPrice": triggerStopPrice,
                "orderGroupId": orderGroupId,
                "orderClass": orderClass,
                "isCrossZero": isCrossZero,
            }
        additional_properties = schemas.AnyTypeSchema
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["symbol"]) -> MetaOapg.properties.symbol: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["symbolId"]) -> MetaOapg.properties.symbolId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["totalQuantity"]) -> MetaOapg.properties.totalQuantity: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["openQuantity"]) -> MetaOapg.properties.openQuantity: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["filledQuantity"]) -> MetaOapg.properties.filledQuantity: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["canceledQuantity"]) -> MetaOapg.properties.canceledQuantity: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["side"]) -> MetaOapg.properties.side: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["orderType"]) -> MetaOapg.properties.orderType: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["limitPrice"]) -> MetaOapg.properties.limitPrice: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["stopPrice"]) -> MetaOapg.properties.stopPrice: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["isAllOrNone"]) -> MetaOapg.properties.isAllOrNone: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["isAnonymous"]) -> MetaOapg.properties.isAnonymous: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["icebergQuantity"]) -> MetaOapg.properties.icebergQuantity: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["minQuantity"]) -> MetaOapg.properties.minQuantity: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["avgExecPrice"]) -> MetaOapg.properties.avgExecPrice: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["lastExecPrice"]) -> MetaOapg.properties.lastExecPrice: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["source"]) -> MetaOapg.properties.source: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["timeInForce"]) -> MetaOapg.properties.timeInForce: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["gtdDate"]) -> MetaOapg.properties.gtdDate: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["state"]) -> MetaOapg.properties.state: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["rejectionReason"]) -> MetaOapg.properties.rejectionReason: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["chainId"]) -> MetaOapg.properties.chainId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["creationTime"]) -> MetaOapg.properties.creationTime: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["updateTime"]) -> MetaOapg.properties.updateTime: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["notes"]) -> MetaOapg.properties.notes: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["primaryRoute"]) -> MetaOapg.properties.primaryRoute: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["secondaryRoute"]) -> MetaOapg.properties.secondaryRoute: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["orderRoute"]) -> MetaOapg.properties.orderRoute: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["venueHoldingOrder"]) -> MetaOapg.properties.venueHoldingOrder: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["comissionCharged"]) -> MetaOapg.properties.comissionCharged: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["exchangeOrderId"]) -> MetaOapg.properties.exchangeOrderId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["isSignificantShareHolder"]) -> MetaOapg.properties.isSignificantShareHolder: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["isInsider"]) -> MetaOapg.properties.isInsider: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["isLimitOffsetInDollar"]) -> MetaOapg.properties.isLimitOffsetInDollar: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["userId"]) -> MetaOapg.properties.userId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["placementCommission"]) -> MetaOapg.properties.placementCommission: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["legs"]) -> 'StrategyOrderPlaceOrdersItemLegs': ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["strategyType"]) -> MetaOapg.properties.strategyType: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["triggerStopPrice"]) -> MetaOapg.properties.triggerStopPrice: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["orderGroupId"]) -> MetaOapg.properties.orderGroupId: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["orderClass"]) -> MetaOapg.properties.orderClass: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["isCrossZero"]) -> MetaOapg.properties.isCrossZero: ...
    
    @typing.overload
    def __getitem__(self, name: str) -> MetaOapg.additional_properties: ...
    
    def __getitem__(self, name: typing.Union[typing_extensions.Literal["id"], typing_extensions.Literal["symbol"], typing_extensions.Literal["symbolId"], typing_extensions.Literal["totalQuantity"], typing_extensions.Literal["openQuantity"], typing_extensions.Literal["filledQuantity"], typing_extensions.Literal["canceledQuantity"], typing_extensions.Literal["side"], typing_extensions.Literal["orderType"], typing_extensions.Literal["limitPrice"], typing_extensions.Literal["stopPrice"], typing_extensions.Literal["isAllOrNone"], typing_extensions.Literal["isAnonymous"], typing_extensions.Literal["icebergQuantity"], typing_extensions.Literal["minQuantity"], typing_extensions.Literal["avgExecPrice"], typing_extensions.Literal["lastExecPrice"], typing_extensions.Literal["source"], typing_extensions.Literal["timeInForce"], typing_extensions.Literal["gtdDate"], typing_extensions.Literal["state"], typing_extensions.Literal["rejectionReason"], typing_extensions.Literal["chainId"], typing_extensions.Literal["creationTime"], typing_extensions.Literal["updateTime"], typing_extensions.Literal["notes"], typing_extensions.Literal["primaryRoute"], typing_extensions.Literal["secondaryRoute"], typing_extensions.Literal["orderRoute"], typing_extensions.Literal["venueHoldingOrder"], typing_extensions.Literal["comissionCharged"], typing_extensions.Literal["exchangeOrderId"], typing_extensions.Literal["isSignificantShareHolder"], typing_extensions.Literal["isInsider"], typing_extensions.Literal["isLimitOffsetInDollar"], typing_extensions.Literal["userId"], typing_extensions.Literal["placementCommission"], typing_extensions.Literal["legs"], typing_extensions.Literal["strategyType"], typing_extensions.Literal["triggerStopPrice"], typing_extensions.Literal["orderGroupId"], typing_extensions.Literal["orderClass"], typing_extensions.Literal["isCrossZero"], str, ]):
        # dict_instance[name] accessor
        return super().__getitem__(name)
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["symbol"]) -> typing.Union[MetaOapg.properties.symbol, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["symbolId"]) -> typing.Union[MetaOapg.properties.symbolId, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["totalQuantity"]) -> typing.Union[MetaOapg.properties.totalQuantity, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["openQuantity"]) -> typing.Union[MetaOapg.properties.openQuantity, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["filledQuantity"]) -> typing.Union[MetaOapg.properties.filledQuantity, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["canceledQuantity"]) -> typing.Union[MetaOapg.properties.canceledQuantity, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["side"]) -> typing.Union[MetaOapg.properties.side, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["orderType"]) -> typing.Union[MetaOapg.properties.orderType, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["limitPrice"]) -> typing.Union[MetaOapg.properties.limitPrice, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["stopPrice"]) -> typing.Union[MetaOapg.properties.stopPrice, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["isAllOrNone"]) -> typing.Union[MetaOapg.properties.isAllOrNone, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["isAnonymous"]) -> typing.Union[MetaOapg.properties.isAnonymous, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["icebergQuantity"]) -> typing.Union[MetaOapg.properties.icebergQuantity, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["minQuantity"]) -> typing.Union[MetaOapg.properties.minQuantity, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["avgExecPrice"]) -> typing.Union[MetaOapg.properties.avgExecPrice, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["lastExecPrice"]) -> typing.Union[MetaOapg.properties.lastExecPrice, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["source"]) -> typing.Union[MetaOapg.properties.source, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["timeInForce"]) -> typing.Union[MetaOapg.properties.timeInForce, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["gtdDate"]) -> typing.Union[MetaOapg.properties.gtdDate, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["state"]) -> typing.Union[MetaOapg.properties.state, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["rejectionReason"]) -> typing.Union[MetaOapg.properties.rejectionReason, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["chainId"]) -> typing.Union[MetaOapg.properties.chainId, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["creationTime"]) -> typing.Union[MetaOapg.properties.creationTime, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["updateTime"]) -> typing.Union[MetaOapg.properties.updateTime, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["notes"]) -> typing.Union[MetaOapg.properties.notes, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["primaryRoute"]) -> typing.Union[MetaOapg.properties.primaryRoute, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["secondaryRoute"]) -> typing.Union[MetaOapg.properties.secondaryRoute, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["orderRoute"]) -> typing.Union[MetaOapg.properties.orderRoute, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["venueHoldingOrder"]) -> typing.Union[MetaOapg.properties.venueHoldingOrder, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["comissionCharged"]) -> typing.Union[MetaOapg.properties.comissionCharged, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["exchangeOrderId"]) -> typing.Union[MetaOapg.properties.exchangeOrderId, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["isSignificantShareHolder"]) -> typing.Union[MetaOapg.properties.isSignificantShareHolder, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["isInsider"]) -> typing.Union[MetaOapg.properties.isInsider, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["isLimitOffsetInDollar"]) -> typing.Union[MetaOapg.properties.isLimitOffsetInDollar, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["userId"]) -> typing.Union[MetaOapg.properties.userId, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["placementCommission"]) -> typing.Union[MetaOapg.properties.placementCommission, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["legs"]) -> typing.Union['StrategyOrderPlaceOrdersItemLegs', schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["strategyType"]) -> typing.Union[MetaOapg.properties.strategyType, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["triggerStopPrice"]) -> typing.Union[MetaOapg.properties.triggerStopPrice, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["orderGroupId"]) -> typing.Union[MetaOapg.properties.orderGroupId, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["orderClass"]) -> typing.Union[MetaOapg.properties.orderClass, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["isCrossZero"]) -> typing.Union[MetaOapg.properties.isCrossZero, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: str) -> typing.Union[MetaOapg.additional_properties, schemas.Unset]: ...
    
    def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id"], typing_extensions.Literal["symbol"], typing_extensions.Literal["symbolId"], typing_extensions.Literal["totalQuantity"], typing_extensions.Literal["openQuantity"], typing_extensions.Literal["filledQuantity"], typing_extensions.Literal["canceledQuantity"], typing_extensions.Literal["side"], typing_extensions.Literal["orderType"], typing_extensions.Literal["limitPrice"], typing_extensions.Literal["stopPrice"], typing_extensions.Literal["isAllOrNone"], typing_extensions.Literal["isAnonymous"], typing_extensions.Literal["icebergQuantity"], typing_extensions.Literal["minQuantity"], typing_extensions.Literal["avgExecPrice"], typing_extensions.Literal["lastExecPrice"], typing_extensions.Literal["source"], typing_extensions.Literal["timeInForce"], typing_extensions.Literal["gtdDate"], typing_extensions.Literal["state"], typing_extensions.Literal["rejectionReason"], typing_extensions.Literal["chainId"], typing_extensions.Literal["creationTime"], typing_extensions.Literal["updateTime"], typing_extensions.Literal["notes"], typing_extensions.Literal["primaryRoute"], typing_extensions.Literal["secondaryRoute"], typing_extensions.Literal["orderRoute"], typing_extensions.Literal["venueHoldingOrder"], typing_extensions.Literal["comissionCharged"], typing_extensions.Literal["exchangeOrderId"], typing_extensions.Literal["isSignificantShareHolder"], typing_extensions.Literal["isInsider"], typing_extensions.Literal["isLimitOffsetInDollar"], typing_extensions.Literal["userId"], typing_extensions.Literal["placementCommission"], typing_extensions.Literal["legs"], typing_extensions.Literal["strategyType"], typing_extensions.Literal["triggerStopPrice"], typing_extensions.Literal["orderGroupId"], typing_extensions.Literal["orderClass"], typing_extensions.Literal["isCrossZero"], str, ]):
        return super().get_item_oapg(name)

    def __new__(
        cls,
        *args: typing.Union[dict, frozendict.frozendict, ],
        id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        symbol: typing.Union[MetaOapg.properties.symbol, str, schemas.Unset] = schemas.unset,
        symbolId: typing.Union[MetaOapg.properties.symbolId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        totalQuantity: typing.Union[MetaOapg.properties.totalQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        openQuantity: typing.Union[MetaOapg.properties.openQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        filledQuantity: typing.Union[MetaOapg.properties.filledQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        canceledQuantity: typing.Union[MetaOapg.properties.canceledQuantity, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        side: typing.Union[MetaOapg.properties.side, str, schemas.Unset] = schemas.unset,
        orderType: typing.Union[MetaOapg.properties.orderType, str, schemas.Unset] = schemas.unset,
        limitPrice: typing.Union[MetaOapg.properties.limitPrice, str, schemas.Unset] = schemas.unset,
        stopPrice: typing.Union[MetaOapg.properties.stopPrice, str, schemas.Unset] = schemas.unset,
        isAllOrNone: typing.Union[MetaOapg.properties.isAllOrNone, bool, schemas.Unset] = schemas.unset,
        isAnonymous: typing.Union[MetaOapg.properties.isAnonymous, bool, schemas.Unset] = schemas.unset,
        icebergQuantity: typing.Union[MetaOapg.properties.icebergQuantity, str, schemas.Unset] = schemas.unset,
        minQuantity: typing.Union[MetaOapg.properties.minQuantity, str, schemas.Unset] = schemas.unset,
        avgExecPrice: typing.Union[MetaOapg.properties.avgExecPrice, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        lastExecPrice: typing.Union[MetaOapg.properties.lastExecPrice, str, schemas.Unset] = schemas.unset,
        source: typing.Union[MetaOapg.properties.source, str, schemas.Unset] = schemas.unset,
        timeInForce: typing.Union[MetaOapg.properties.timeInForce, str, schemas.Unset] = schemas.unset,
        gtdDate: typing.Union[MetaOapg.properties.gtdDate, str, schemas.Unset] = schemas.unset,
        state: typing.Union[MetaOapg.properties.state, str, schemas.Unset] = schemas.unset,
        rejectionReason: typing.Union[MetaOapg.properties.rejectionReason, str, schemas.Unset] = schemas.unset,
        chainId: typing.Union[MetaOapg.properties.chainId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        creationTime: typing.Union[MetaOapg.properties.creationTime, str, schemas.Unset] = schemas.unset,
        updateTime: typing.Union[MetaOapg.properties.updateTime, str, schemas.Unset] = schemas.unset,
        notes: typing.Union[MetaOapg.properties.notes, str, schemas.Unset] = schemas.unset,
        primaryRoute: typing.Union[MetaOapg.properties.primaryRoute, str, schemas.Unset] = schemas.unset,
        secondaryRoute: typing.Union[MetaOapg.properties.secondaryRoute, str, schemas.Unset] = schemas.unset,
        orderRoute: typing.Union[MetaOapg.properties.orderRoute, str, schemas.Unset] = schemas.unset,
        venueHoldingOrder: typing.Union[MetaOapg.properties.venueHoldingOrder, str, schemas.Unset] = schemas.unset,
        comissionCharged: typing.Union[MetaOapg.properties.comissionCharged, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        exchangeOrderId: typing.Union[MetaOapg.properties.exchangeOrderId, str, schemas.Unset] = schemas.unset,
        isSignificantShareHolder: typing.Union[MetaOapg.properties.isSignificantShareHolder, bool, schemas.Unset] = schemas.unset,
        isInsider: typing.Union[MetaOapg.properties.isInsider, bool, schemas.Unset] = schemas.unset,
        isLimitOffsetInDollar: typing.Union[MetaOapg.properties.isLimitOffsetInDollar, bool, schemas.Unset] = schemas.unset,
        userId: typing.Union[MetaOapg.properties.userId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        placementCommission: typing.Union[MetaOapg.properties.placementCommission, str, schemas.Unset] = schemas.unset,
        legs: typing.Union['StrategyOrderPlaceOrdersItemLegs', schemas.Unset] = schemas.unset,
        strategyType: typing.Union[MetaOapg.properties.strategyType, str, schemas.Unset] = schemas.unset,
        triggerStopPrice: typing.Union[MetaOapg.properties.triggerStopPrice, str, schemas.Unset] = schemas.unset,
        orderGroupId: typing.Union[MetaOapg.properties.orderGroupId, decimal.Decimal, int, schemas.Unset] = schemas.unset,
        orderClass: typing.Union[MetaOapg.properties.orderClass, str, schemas.Unset] = schemas.unset,
        isCrossZero: typing.Union[MetaOapg.properties.isCrossZero, bool, schemas.Unset] = schemas.unset,
        _configuration: typing.Optional[schemas.Configuration] = None,
        **kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, bool, None, list, tuple, bytes, io.FileIO, io.BufferedReader, ],
    ) -> 'StrategyOrderPlaceOrdersItem':
        return super().__new__(
            cls,
            *args,
            id=id,
            symbol=symbol,
            symbolId=symbolId,
            totalQuantity=totalQuantity,
            openQuantity=openQuantity,
            filledQuantity=filledQuantity,
            canceledQuantity=canceledQuantity,
            side=side,
            orderType=orderType,
            limitPrice=limitPrice,
            stopPrice=stopPrice,
            isAllOrNone=isAllOrNone,
            isAnonymous=isAnonymous,
            icebergQuantity=icebergQuantity,
            minQuantity=minQuantity,
            avgExecPrice=avgExecPrice,
            lastExecPrice=lastExecPrice,
            source=source,
            timeInForce=timeInForce,
            gtdDate=gtdDate,
            state=state,
            rejectionReason=rejectionReason,
            chainId=chainId,
            creationTime=creationTime,
            updateTime=updateTime,
            notes=notes,
            primaryRoute=primaryRoute,
            secondaryRoute=secondaryRoute,
            orderRoute=orderRoute,
            venueHoldingOrder=venueHoldingOrder,
            comissionCharged=comissionCharged,
            exchangeOrderId=exchangeOrderId,
            isSignificantShareHolder=isSignificantShareHolder,
            isInsider=isInsider,
            isLimitOffsetInDollar=isLimitOffsetInDollar,
            userId=userId,
            placementCommission=placementCommission,
            legs=legs,
            strategyType=strategyType,
            triggerStopPrice=triggerStopPrice,
            orderGroupId=orderGroupId,
            orderClass=orderClass,
            isCrossZero=isCrossZero,
            _configuration=_configuration,
            **kwargs,
        )

from snaptrade_client.model.strategy_order_place_orders_item_legs import StrategyOrderPlaceOrdersItemLegs
